1. Field of the Invention
This invention relates to the determination of valid data in a local cache of a multiprocessor or multipath, multi-cache system and, more particularly, to a system which utilizes a common Record Lock Processor.
2. Background Description
A Record Lock Processor (RLP) is a special processor that facilitates the coordinated use of the shared mass storage in a high transaction environment, such as for example, airline reservation systems. U.S. patent application Ser. No. 167,748, filed Mar. 14, 1988 in the names of Ralph E. Sipple, John O. Sjolander, Marvin W. Theis and John R. Jordan, which is assigned to the assignee of the present invention is directed to such a Record Lock Processor. U.S. patent application Ser. No. 167,748, is hereby incorporated by reference in this document. In tightly coupled systems (i.e., systems where multiple processors share common mass storage) queuing for internal memory references may occur in addition to queuing for the use of a mass storage record.
With a Record Lock Processor, queuing and contention for common resources may be directed to mass storage records which are shared among multiple hosts in a loosely coupled system where each data processing device may have its own operating system. In transaction applications where a large number of data processors share a memory, the efficiency of a loosely coupled system using a Record Lock Processor can be greater than the efficiency of a tightly coupled system.
The efficiency of a loosely coupled system is approximately constant as more processors are added to the network. The efficiency of tightly coupled systems, however, decreases with each additional processor. This means that each successive processor added yields less additional net system throughput than did the previous processor that was added.
Each of the hosts of a multihost system may have their own local I/O cache memory which share mass storage (disk) resources. In operation these cache memories generally store validating bits which are set and cleared in order to verify that data stored in each cache memory matches data stored in the common mass storage. A problem arises in such multihost systems when an object is resident in one or more hosts' dedicated cache memories at a given instant of time and another host, (or other device capable of storing into shared mass storage), stores information into that mass storage address. If one of the plural processors modifies that data object with a write operation, steps must be taken in order to preserve the integrity of the data to prevent a processor from obtaining a data object from its own dedicated cache which is no longer current with the mass storage, because a write operation has been performed by a different processor.
When an object is updated by a host an invalidate message or signal is sent to the other hosts in the network that their copies of this object are invalid because the sender of the message has updated the object. This approach involves considerable traffic in sending and acknowledging the invalidate message. For N hosts there are 2(N-1) messages for each update. As N grows the traffic for invalidate is so excessive that the approach is rendered infeasible.
Duplicate or ambiguous results must be avoided when data is copied into a requestor's cache memory if that data object has been modified in the shared mass storage by a different host requestor. In the present invention the validity status of objects in a host main memory cache is implemented along with the locking function. The Record Lock Processor then indicates when a new Object has been fetched and the cache entry copy of this Object provides a validity status indication. The Record Lock Processor is told when a host has updated an Object, and the cache entry copy of the updated Object is set to Valid, while the cache entry copies of this Object for other hosts are set to Invalid.
If another host then tries to re-use the data object, the other host will receive an Invalid status indication which results in a refetch of the data from mass storage. If no other host has updated an Object, the requesting host will obtain a Valid status indication if the entry is still in its Cache List in the RLP. If the Object is Valid and the requesting host has a copy in his cache, the requesting host can re-use the Object in his cache.